-; UltimateKEYS (for AutoHotkey v1.1).ahk - 2022-11-08
+; UltimateKEYS (for AutoHotkey v1.1).ahk - 2023-01-02
; Website : www.ultimatekeys.info (pieter-degroote.github.io/UltimateKEYS/)
cmpRingAbove.item["y"] := "{u+1e99}" ; (ẙ) y with ring above
-; Compose : Macron/Stroke (-)
+; Compose : Macron and Stroke (-)
cmpMacronStroke := ComObjCreate("Scripting.Dictionary")
cmpMacronStroke.item["a"] := "{u+0101}" ; (ā) a with macron
cmpMacronStroke.item[" "] := "{u+00af}" ; (¯) macron
-; Compose : Macron/Stroke (Additional) (_)
+; Compose : Macron and Stroke (additional) (_)
cmpMacronStrokeAdd := ComObjCreate("Scripting.Dictionary")
cmpMacronStrokeAdd.item["g"] := "{u+1e21}" ; (ḡ) g with macron
cmpSmallH.item["G"] := "{u+0193}" ; (Ɠ) G with hook
cmpSmallH.item["h"] := "{u+0266}" ; (ɦ) h with hook
cmpSmallH.item["H"] := "{u+a7aa}" ; (Ɦ) H with hook
+cmpSmallH.item["j"] := "{u+0267}" ; (ɧ) small letter heng with hook
cmpSmallH.item["k"] := "{u+0199}" ; (ƙ) k with hook
cmpSmallH.item["K"] := "{u+0198}" ; (Ƙ) K with hook
cmpSmallH.item["m"] := "{u+0271}" ; (ɱ) m with hook
cmpSmallH.item["Z"] := "{u+0224}" ; (Ȥ) Z with hook
-; Compose : Retroflex Hook, Crossed-Tail and Variations (f)
+; Compose : Retroflex Hook, Right Hook, Crossed-Tail and Variations (f)
cmpSmallF := ComObjCreate("Scripting.Dictionary")
-cmpSmallF.item["a"] := "{u+1d8f}" ; (ᶏ) a with retroflex hook
cmpSmallF.item["d"] := "{u+1d91}" ; (ᶑ) d with hook and tail
-cmpSmallF.item["e"] := "{u+1d92}" ; (ᶒ) e with retroflex hook
-cmpSmallF.item["f"] := "{u+1d93}" ; (ᶓ) small letter open e with retroflex hook
+cmpSmallF.item["e"] := "{u+025d}" ; (ɝ) small letter reversed open e with hook
cmpSmallF.item["g"] := "{u+ab36}" ; (ꬶ) small letter script g with crossed-tail
-cmpSmallF.item["h"] := "{u+0267}" ; (ɧ) small letter heng with hook
-cmpSmallF.item["i"] := "{u+1d96}" ; (ᶖ) i with retroflex hook
+cmpSmallF.item["h"] := "{u+a727}" ; (ꜧ) small letter heng
+cmpSmallF.item["H"] := "{u+a726}" ; (Ꜧ) capital letter heng
cmpSmallF.item["j"] := "{u+029d}" ; (ʝ) j with crossed-tail
cmpSmallF.item["l"] := "{u+026d}" ; (ɭ) l with retroflex hook
cmpSmallF.item["n"] := "{u+0273}" ; (ɳ) n with retroflex hook
-cmpSmallF.item["o"] := "{u+1d97}" ; (ᶗ) small letter open o with retroflex hook
-cmpSmallF.item["q"] := "{u+1d90}" ; (ᶐ) Latin small letter alpha with retroflex hook
cmpSmallF.item["r"] := "{u+027e}" ; (ɾ) r with fishhook
cmpSmallF.item["t"] := "{u+0288}" ; (ʈ) t with retroflex hook
cmpSmallF.item["T"] := "{u+01ae}" ; (Ʈ) T with retroflex hook
-cmpSmallF.item["u"] := "{u+1d99}" ; (ᶙ) u with retroflex hook
cmpSmallF.item["v"] := "{u+2c71}" ; (ⱱ) v with right hook
cmpSmallF.item["w"] := "{u+2c73}" ; (ⱳ) w with right hook
cmpSmallF.item["W"] := "{u+2c72}" ; (Ⱳ) W with right hook
cmpSmallL := ComObjCreate("Scripting.Dictionary")
cmpSmallL.item["a"] := "{u+0251}" ; (ɑ) Latin small letter alpha
cmpSmallL.item["A"] := "{u+2c6d}" ; (Ɑ) Latin capital letter alpha
+cmpSmallL.item["b"] := "{u+025e}" ; (ɞ) small letter closed reversed open e
cmpSmallL.item["d"] := "{u+1e9f}" ; (ẟ) Latin small letter delta
cmpSmallL.item["e"] := "{u+025b}" ; (ɛ) small letter open e (Latin small epsilon)
cmpSmallL.item["E"] := "{u+0190}" ; (Ɛ) capital letter open E (Latin capital epsilon)
cmpSmallL.item["f"] := "{u+0278}" ; (ɸ) Latin small letter phi
cmpSmallL.item["g"] := "{u+0261}" ; (ɡ) small letter script g
cmpSmallL.item["G"] := "{u+a7ac}" ; (Ɡ) capital letter script G
-cmpSmallL.item["h"] := "{u+a727}" ; (ꜧ) small letter heng
-cmpSmallL.item["H"] := "{u+a726}" ; (Ꜧ) capital letter heng
+cmpSmallL.item["h"] := "{u+01a3}" ; (ƣ) small letter gha
+cmpSmallL.item["H"] := "{u+01a2}" ; (Ƣ) capital letter gha
cmpSmallL.item["i"] := "{u+0269}" ; (ɩ) Latin small letter iota
cmpSmallL.item["I"] := "{u+0196}" ; (Ɩ) Latin capital letter iota
cmpSmallL.item["j"] := "{u+0263}" ; (ɣ) Latin small letter gamma
cmpSmallL.item["J"] := "{u+0194}" ; (Ɣ) Latin capital letter gamma
cmpSmallL.item["k"] := "{u+0138}" ; (ĸ) small letter kra
+cmpSmallL.item["l"] := "{u+019b}" ; (ƛ) Latin small letter lambda with stroke (barred lambda)
cmpSmallL.item["m"] := "{u+0270}" ; (ɰ) small letter turned m with long leg
cmpSmallL.item["n"] := "{u+019e}" ; (ƞ) small letter n with long right leg
cmpSmallL.item["N"] := "{u+0220}" ; (Ƞ) capital letter N with long right leg
cmpSmallL.item["o"] := "{u+0254}" ; (ɔ) small letter open o
cmpSmallL.item["O"] := "{u+0186}" ; (Ɔ) capital letter open O
-cmpSmallL.item["q"] := "{u+01a3}" ; (ƣ) small letter gha
-cmpSmallL.item["Q"] := "{u+01a2}" ; (Ƣ) capital letter gha
+cmpSmallL.item["q"] := "{u+0277}" ; (ɷ) Latin small letter closed omega
cmpSmallL.item["s"] := "{u+0283}" ; (ʃ) small letter esh
cmpSmallL.item["S"] := "{u+01a9}" ; (Ʃ) capital letter esh
cmpSmallL.item["u"] := "{u+028a}" ; (ʊ) Latin small letter upsilon
cmpSmallR := ComObjCreate("Scripting.Dictionary")
cmpSmallR.item["a"] := "{u+0250}" ; (ɐ) small letter turned a
cmpSmallR.item["A"] := "{u+2c6f}" ; (Ɐ) capital letter turned A
-cmpSmallR.item["c"] := "{u+025c}" ; (ɜ) small letter reversed open e
+cmpSmallR.item["b"] := "{u+025c}" ; (ɜ) small letter reversed open e
cmpSmallR.item["d"] := "{u+018d}" ; (ƍ) Latin small letter turned delta
cmpSmallR.item["e"] := "{u+01dd}" ; (ǝ) small letter turned e
cmpSmallR.item["E"] := "{u+018e}" ; (Ǝ) capital letter reversed E
cmpSmallR.item["K"] := "{u+a7b0}" ; (Ʞ) capital letter turned K
cmpSmallR.item["m"] := "{u+026f}" ; (ɯ) small letter turned m
cmpSmallR.item["M"] := "{u+019c}" ; (Ɯ) capital letter turned M
-cmpSmallR.item["o"] := "{u+0264}" ; (ɤ) small letter rams horn
+cmpSmallR.item["o"] := "{u+0264}" ; (ɤ) small letter ram's horn (baby gamma)
cmpSmallR.item["q"] := "{u+0252}" ; (ɒ) Latin small letter turned alpha
cmpSmallR.item["Q"] := "{u+2c70}" ; (Ɒ) Latin capital letter turned alpha
cmpSmallR.item["r"] := "{u+0279}" ; (ɹ) small letter turned r
cmpSemicolon.item["b"] := "{u+2022}" ; (•) bullet
cmpSemicolon.item[";"] := "{u+2022}" ; (•) bullet
cmpSemicolon.item["t"] := "{u+2023}" ; (‣) triangular bullet
+cmpSemicolon.item[">"] := "{u+2023}" ; (‣) triangular bullet
cmpSemicolon.item["h"] := "{u+2043}" ; (⁃) hyphen bullet
+cmpSemicolon.item["-"] := "{u+2043}" ; (⁃) hyphen bullet
cmpSemicolon.item["w"] := "{u+25e6}" ; (◦) white bullet
+cmpSemicolon.item["o"] := "{u+25e6}" ; (◦) white bullet
cmpAcuteAccent.item["1"] := "{u+2032}" ; (′) prime
cmpAcuteAccent.item["2"] := "{u+2033}" ; (″) double prime
cmpAcuteAccent.item["3"] := "{u+2034}" ; (‴) triple prime
cmpBracketLeft := ComObjCreate("Scripting.Dictionary")
cmpBracketRight := ComObjCreate("Scripting.Dictionary")
+cmpBackslash := ComObjCreate("Scripting.Dictionary")
cmpCedillaOgonek.item[chr(34)] := "{u+201e}" ; („) double low-9 quotation mark
cmpDiaeresis.item[","] := "{u+201e}" ; („) double low-9 quotation mark
cmpCedillaOgonek.item["'"] := "{u+201a}" ; (‚) single low-9 quotation mark
cmpBracketLeft.item["'"] := "{u+2018}" ; (‘) left single quotation mark
cmpAcuteAccent.item["]"] := "{u+2019}" ; (’) right single quotation mark
cmpBracketRight.item["'"] := "{u+2019}" ; (’) right single quotation mark
+cmpBackslash.item[chr(34)] := "{u+201f}" ; (‟) double high-reversed-9 quotation mark
+cmpDiaeresis.item["\"] := "{u+201f}" ; (‟) double high-reversed-9 quotation mark
+cmpBackslash.item["'"] := "{u+201b}" ; (‛) single high-reversed-9 quotation mark
+cmpAcuteAccent.item["\"] := "{u+201b}" ; (‛) single high-reversed-9 quotation mark
cmpLessThan.item["<"] := "{u+00ab}" ; («) left-pointing double angle quotation mark
cmpLessThan.item[chr(34)] := "{u+00ab}" ; («) left-pointing double angle quotation mark
cmpDiaeresis.item["<"] := "{u+00ab}" ; («) left-pointing double angle quotation mark
cmpDigitEight.item["n"] := "{u+27c1}" ; (⟁) white triangle containing small white triangle
-; Compose : Chess Symbols (C)
+; Compose : Chess Pieces and Playing Card Suit Symbols (C)
cmpCapitalC.item["k"] := "{u+2654}" ; (♔) white chess king
cmpCapitalC.item["q"] := "{u+2655}" ; (♕) white chess queen
cmpCapitalC.item["B"] := "{u+265d}" ; (♝) black chess bishop
cmpCapitalC.item["N"] := "{u+265e}" ; (♞) black chess knight
cmpCapitalC.item["P"] := "{u+265f}" ; (♟) black chess pawn
-
-
-; Compose : Playing Card Suit Symbols (S)
-
-cmpCapitalS.item["c"] := "{u+2663}" ; (♣) black club suit
-cmpCapitalS.item["C"] := "{u+2667}" ; (♧) white club suit
-cmpCapitalS.item["d"] := "{u+2666}" ; (♦) black diamond suit
-cmpCapitalS.item["D"] := "{u+2662}" ; (♢) white diamond suit
-cmpCapitalS.item["h"] := "{u+2665}" ; (♥) black heart suit
-cmpCapitalS.item["H"] := "{u+2661}" ; (♡) white heart suit
-cmpCapitalS.item["p"] := "{u+2660}" ; (♠) black spade suit
-cmpCapitalS.item["P"] := "{u+2664}" ; (♤) white spade suit
+cmpCapitalC.item["c"] := "{u+2667}" ; (♧) white club suit
+cmpCapitalC.item["C"] := "{u+2663}" ; (♣) black club suit
+cmpCapitalC.item["d"] := "{u+2662}" ; (♢) white diamond suit
+cmpCapitalC.item["D"] := "{u+2666}" ; (♦) black diamond suit
+cmpCapitalC.item["h"] := "{u+2661}" ; (♡) white heart suit
+cmpCapitalC.item["H"] := "{u+2665}" ; (♥) black heart suit
+cmpCapitalC.item["s"] := "{u+2664}" ; (♤) white spade suit
+cmpCapitalC.item["S"] := "{u+2660}" ; (♠) black spade suit
; Compose : Dingbat Negative Circled Digits (n)
>!+space::Send {u+00a0} ; non-breaking space
-; Compose Key Selector
+; Configuration : Compose Key Selector
>!`::
->!~::
+>!sc056::
Input, keyA, L1, {bs}{del}{esc}{home}{end}
Input, keyB, L1, {bs}{del}{esc}{home}{end}
Send % cmpBracketLeft.item[keyB]
else if (keyA == "]")
Send % cmpBracketRight.item[keyB]
+ else if (keyA == "\")
+ Send % cmpBackslash.item[keyB]
else if (keyA == "C")
Send % cmpCapitalC.item[keyB]
else if (keyA == "e")